<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
<HTML>
<HEAD>
<TITLE>SP - XML support</TITLE>
</HEAD>
<BODY>
<H1>XML support</H1>
<H2>Using SP to parse XML</H2>
<P>
To enable SP's support for <A
HREF="http://www.w3.org/TR/1998/REC-xml-19980210">XML 1.0</A>:
<UL>
<LI>
Set the <SAMP>SP_CHARSET_FIXED</SAMP> environment variable to <SAMP>YES</SAMP>.
<LI>
Set the <SAMP>SP_ENCODING</SAMP> environment variable to <SAMP>XML</SAMP>.
<LI>
Set the <SAMP>SGML_CATALOG_FILES</SAMP> environment variable to
point to the file <SAMP>pubtext/xml.soc</SAMP>.
<LI>
Use the <SAMP>-wxml</SAMP> option.
<LI>
If the document is not supposed to be valid, use <SAMP>-wno-valid</SAMP>
option.
</UL>

<H2>Limitations</H2>
<P>
SP does not enforce the following XML constraints:
<UL>
<LI>
XML constrains processing instructions
with a target matching <CODE>[Xx][Mm][Ll]</CODE>,
both in terms of where they can occur and their content.
<LI>
XML does not allow a parameter separator that is adjacent to a
delimiter to be omitted.
<LI>
XML has constraints on the use of <CODE>&amp;</CODE> in parameter
literals.  In SGML terms, XML says that the <b>ero</b> delimiter is
recognized in a parameter literal, and that it must be followed by an
entity reference, but the entity reference is not expanded.
</UL>
<P>
Line ends are normalized using SGML conventions to a CR/LF character
pair rather than using the XML convention of a single LF character.
<P>
There is no support for characters outside the basic multilingual plane
(ie those with scalar values greater than U+FFFF).
<P>
SP does not enforce XML's rules on not continuing normal processing
after an error.  Applications can enforce these if they choose.

<H2>Web SGML Adaptations Annex</H2>
<P>
SP's support for SGML is based on <A
HREF="http://www.ornl.gov/sgml/wg8/document/1955.htm">Annex K of ISO
8879</A> (the Web SGML Adaptations Annex).
The following features of Annex K are not yet implemented:
<UL>
<LI>
Checking of <SAMP>ENTITIES REF</SAMP> assertions
<LI>
<SAMP>#IMPLIED</SAMP> document type name
<LI>
Implying definitions of notations and entities
(<CODE>IMPLYDEF ENTITY YES</CODE> and <CODE>NOTATION YES</CODE>)
<LI>
SGML declarations on subdocuments
<LI>
<SAMP>DATA</SAMP> declared value
<LI>
URN feature
</UL>
<P>
<ADDRESS>
James Clark<BR>
jjc@jclark.com
</ADDRESS>
</BODY>
</HTML>
